package cadastro;

import interfaces.IRepositorioLinha;

import java.util.List;

import modelos.Empresa;
import modelos.Linha;
import fachada.Fachada;


public class CadastroLinha {

    private IRepositorioLinha rep;
    
    public CadastroLinha(IRepositorioLinha rep){
    	this.rep = rep;
    }
    
    public void adicionarLinha(Linha l){
        rep.adicionarLinha(l);
    }
    
    public void editarLinha(Linha l){
        rep.editarLinha(l);
    }
    
    public List<Linha> listarLinha(){
        List<Linha> retorno = rep.listarLinha();
        return montar(retorno);
    }
    
    public void removerLinha(Linha l){
        rep.removerLinha(l);
    }
    
    public Linha buscarLinhaPorId(Long id){
    	Linha retorno = rep.buscarLinhaPorId(id);
    	Fachada f = Fachada.getInstancia();
    	Empresa e = f.cadastroEmpresa().buscarEmpresaPorId(retorno.getEmpresa().getId());
    	retorno.setEmpresa(e);
    	return retorno;
    }
    
    public List<Linha> buscarCodigo(String codigo){
    	List<Linha> retorno = rep.buscaLike("codigo", codigo);
    	return montar(retorno);
    }
    
    public List<Linha> buscarDescricao(String descricao){
    	List<Linha> retorno = rep.buscaLike("descricao", descricao);
    	return montar(retorno);
    }
    
    private List<Linha> montar(List<Linha> retorno){
    	 Empresa e;
         Fachada f = Fachada.getInstancia();
         for(Linha l : retorno){
        	 e = f.cadastroEmpresa().buscarEmpresaPorId(l.getEmpresa().getId());
        	 l.setEmpresa(e);
         }
         return retorno;
    }
}

